package top.jnaw.jee.utils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Copyright (C) 2018 版权所有。 <p> 文件名： 文件功能描述：
 *
 * @author lc  2018/8/11 15:58 创建内容： <p> <p> 修改标识： 修改原因：
 */
public class Html2Test {

  private static final String regEx_script = "<script[^>]*?>[\\s\\S]*?<\\/script>"; // 定义script的正则表达式
  private static final String regEx_style = "<style[^>]*?>[\\s\\S]*?<\\/style>"; // 定义style的正则表达式
  private static final String regEx_html = "<[^>]+>"; // 定义HTML标签的正则表达式
  private static final String regEx_space = "\\s*|\t|\r|\n";//定义空格回车换行符


  /**
   * @return 删除Html标签
   */
  public static String delHTMLTag(String htmlStr) {
    Pattern p_script = Pattern.compile(regEx_script, Pattern.CASE_INSENSITIVE);
    Matcher m_script = p_script.matcher(htmlStr);
    htmlStr = m_script.replaceAll(""); // 过滤script标签

    Pattern p_style = Pattern.compile(regEx_style, Pattern.CASE_INSENSITIVE);
    Matcher m_style = p_style.matcher(htmlStr);
    htmlStr = m_style.replaceAll(""); // 过滤style标签

    Pattern p_html = Pattern.compile(regEx_html, Pattern.CASE_INSENSITIVE);
    Matcher m_html = p_html.matcher(htmlStr);
    htmlStr = m_html.replaceAll(""); // 过滤html标签

    Pattern p_space = Pattern.compile(regEx_space, Pattern.CASE_INSENSITIVE);
    Matcher m_space = p_space.matcher(htmlStr);
    htmlStr = m_space.replaceAll(""); // 过滤空格回车标签
    return htmlStr.trim(); // 返回文本字符串
  }

  public static String getTextFromHtml(String htmlStr) {
    htmlStr = delHTMLTag(htmlStr);
    htmlStr = htmlStr.replaceAll("&nbsp;", "");
// htmlStr = htmlStr.substring(0, htmlStr.indexOf("。")+1);
    htmlStr = htmlStr
        .substring(0, htmlStr.length() > 100 ? 100 : htmlStr.length());
    return htmlStr;
  }

  public static void main(String[] args) {
    String str = "<figure class=\"image\"><img src=\"https://33333.cdn.cke-cs.com/rc1DFuFpHqcR3Mah6y0e/images/173212d13af8c54dd24cd8a5c546993387a1156c6fc624f1_logo.png\"><figcaption>你是都比分别是第收到了可见焚枯食淡fg士大夫</figcaption></figure>";
    System.out.println(getTextFromHtml(str));
  }
}
